import { Token } from '@/types/data'

// 封装专门处理 token 相关的工具函数：
// 1 getToken 获取token
//  const token = getToken()

// 2 setToken 设置token
//  setToken(token)

// 3 clearToken 清理token
//  clearToken()

// 4 isAuth 是否登录
//  const isLogin = isAuth()

// 存取 token 的键
const GEEK_TOKEN = 'geek-h5-1434'

export const getToken = () =>
  JSON.parse(
    localStorage.getItem(GEEK_TOKEN) ?? '{ "token": "", "refresh_token": "" }'
  ) as Token
// const { token, refresh_token } = getToken()

export const setToken = (token: Token) =>
  localStorage.setItem(GEEK_TOKEN, JSON.stringify(token))

export const clearToken = () => localStorage.removeItem(GEEK_TOKEN)

// 约定只要有 token 就认为是登录了
// 注意：此处，需要拿到 token 中的 token 属性，再通过 !! 转布尔值
export const isAuth = () => !!getToken().token
